import request from "@/utils/request"
import {SkuInfoData,SkuData,HasSpuResponseData,AllTradeMark,SpuHasImg,SaleAttrResponseData,HasSaleAttrResponseDate,SpuData} from './type'
//SPU管理模块接口
enum API{
    //获取已有的SPU的数据
    HASSPU_URL='/admin/product/',
    //获取全部品牌的数据
    ALLTRADEMARK_URL="/admin/product/baseTrademark/getTrademarkList",
    //获取某个SPU下的全部的照片数据
    IMAGE_URL="/admin/product/spuImageList/",
    //获取某一个SPU全部已有的销售属性接口地址
    SPUHASSALEATTR_URL="/admin/product/spuSaleAttrList/",
    //获取整个项目全部的销售属性
    ALLSALEATTR_URL="/admin/product/baseSaleAttrList",
    //追加一个新的SPU
    ADDSPU_URL="/admin/product/saveSpuInfo",
    //更新已有的SPU
    UPDATESPU_URL="/admin/product/updateSpuInfo",
    //追加一个新的SKU地址
    ADDSKU_URL='/admin/product/saveSkuInfo',
    //查看某一个已有的SPU下全部售卖的商品
    SKUINFO_URL="/admin/product/findBySpuId/",
    //删除已有的SPU
    REMOVESPU_URL="/admin/product/deleteSpu/",

}
//获取某一个三级分类下已有的SPU数据
export const reqHasSpu=(page: number,limit: number,category3Id: string|number)=>request.get<any,HasSpuResponseData>(API.HASSPU_URL+`${page}/${limit}?category3Id=${category3Id}`);
//获取全部的SPU的品牌数据
export const reqAllTradeMark=()=>request.get<any,AllTradeMark>(API.ALLTRADEMARK_URL);
//获取某一个已有的SPU下全部商品图片
export const reqSpuImageList=(spuId:number)=>request.get<any,SpuHasImg>(API.IMAGE_URL+spuId);
//获取SPU销售属性
export const reqSpuHasSaleAttr=(spuId: number)=>request.get<any,SaleAttrResponseData>(API.SPUHASSALEATTR_URL+spuId);

//获取全部的销售属性
export const reqAllSaleAttr=()=>request.get<any,HasSaleAttrResponseDate>(API.ALLSALEATTR_URL);


//添加一个新的SPU
//更新已有的SPU接口
export const reqAddOrUpdateSpu=(data: SpuData)=>{
    //如果spu对象有ID，说明要更新
    if(data.id!=''){
        return request.post<any,any>(API.UPDATESPU_URL,data);
    }
    else{
        return request.post<any,any>(API.ADDSPU_URL,data);
    }
}

//添加sku请求的方法
export const reqAddSku=(data: SkuData)=>request.post<any,any>(API.ADDSKU_URL,data);

export const reqSkuList=(spuId: number|string)=>request.get<any,SkuInfoData>(API.SKUINFO_URL+spuId);

//删除已有的spu
export const reqRemoveSpu=(spuId: number|string)=>request.delete<any,any>(API.REMOVESPU_URL+spuId);
